事例:XSS by file (Active Storage Proxying)
Ruby on Rails
の
ActiveStorage
で、ファイル経由での
Stored XSS
ファイルアップロード機能
問題
Active StorageのProxy
S3などにアップロードされたファイルをRailsアプリケーション側でproxyして閲覧できる機能
アップロードできるファイルのcontent-typeに制限がないこと、ファイル閲覧時のレスポンスの
Content-Disposition
がinlineであったため
XSS
が可能になった
リリース前のmasterブランチで修正された
そのため
CVE
は発行されていない
当時は
SVG
ファイルにCSPが設定されなかったため
CSP bypass
となった
後に
事例:CVE-2022-22577 Content Security Policy is only active for HTML responses but not for image/svg+xml
で修正された
レポート
https://hackerone.com/reports/949513
2020年8月
修正コミット
https://github.com/rails/rails/commit/b221a4dc43368a1b6f00476f7c5f6047c5c7eea4
#事例